在最近的几年中,浏览器的功能变得愈发强大,并且成为展现复杂的应用和图形的平台。然而其中的大部分都是标准的二维图形。大多数现代浏览器已经支持WebGL,不仅可以在浏览器端创建二维应用和图形,而且可以通过GPU的功能创建好看并且运行良好的三维应用。
然而,直接使用WebGL编程还是很复杂的。编程者需要知道WebGL的底层细节,并且学习复杂的着色语言来获得WebGL的大部分功能。Three.js提供一个很简单的关于WebGL特性的JavaScript API,所以用户不需要详细地学习WebGL,就能创作出好看的三维图形。
Three.js为直接在浏览器中创建三维场景提供了大量的特性和API。阅读这本书,读者将通过许多交互案例和示例代码学习Three.js提供的各种API。
本书内容第1章介绍使用Three.js的基本步骤。阅读完本章就能立刻创建你的第一个Three.js场景,也能直接在浏览器中创建你的第一个三维场景并让它动起来。
第2章解释了使用Three.js时需要了解的基本组件。将介绍灯光、网格、几何形状、材质和摄像机。阅读本章,读者也将对Three.js提供的不同灯光和在场景中使用的摄像机有一个大概的印象。
第3章深入介绍可以在场景中使用的不同灯光。本章通过示例讲解了如何使用聚光灯、平行光、环境光、点光源、半球光和区域光。此外,本章还展示了如何使用镜头光晕来影响光源。
第4章讲述Three.js中可在网格中使用的材质。本章展示了可以设置的所有属性,并且提供了不同的交互示例来阐述Three.js中可用的材质。
第5章讲述Three.js中的几何体。本章将介绍如何在Three.js中创建和配置几何体,并且提供了几何体的交互示例,包括平面、圆形、任意图形、长方体、球体、圆柱体、圆环、环状扭结和多面体。
第6章接着第5章讲解如何使用几何体。本章介绍如何配置和使用Three.js提供的更高级的几何体,如凸面体和Lathe。在本章,你还能学到如何从二维形状拉伸出三维几何体,并且学会通过二元操作来组合几何体,从而创建出一个新的几何体。
第7章介绍从头开始或者通过现有的几何体来创建一个粒子系统。这一章还介绍了如何使用精灵或点云材质来改变单个点的外观。
第8章介绍如何通过外部资源导入网格和几何体,以及如何使用Three.js内置的JSON格式来保存几何体和场景。本章还会解释如何加载不同格式的模型,如OBJ、DAE、STL、CTM、PLY等。
第9章展示可以让场景动起来的各种动画,包括如何组合使用Tween.js库和Three.js,以及如何使用基于形态和框架的动画模型。
第10章延续第4章的内容—使用Three.js材质。在第4章已经初步介绍了材质,本章着重介绍现有的各种材质以及如何把材质应用到网格中。另外,本章还介绍了如何直接使用HTML5中的视频元素和画布元素作为材质的输入。
第11章展示如何使用Three.js对已经渲染过的场景进行后期处理。通过后期处理,你可以将模糊、倾斜移位和着色等效果添加到已经渲染过的场景中。除此之外,本章还介绍了如何创建自己的后期处理效果、自定义的顶点和片段着色器。
第12章解释如何将物理效果添加到Three.js场景中。通过物理效果,你能检测物体之间的碰撞,使物体对重力有响应,以及应用摩擦力。本章展示了如何用Physijs JavaScript库实现这些效果。此外,本章还展示了如何在Three.js场景中添加声音。
本书的使用要求使用本书只需一个能够“玩转”你的例子的文本编辑器(如Sublime)和能够显示这些例子的现代浏览器。有些例子会需要一个本地的网络服务器,你可以在本书第1章中学会如何搭建一个轻量级的网络服务器以使用书中的例子。
面向的读者这本书对于每一个知道JavaScript并且想要在浏览器中创建运行的三维图形的人来说都是很棒的。你不需要知道任何高级的数学知识或WebGL,所需的只是对JavaScript和HTML有大致的了解。书中所需要的材料和示例都可以免费下载,所用的工具都是开源的。所以,如果你想创建可以在任何现代浏览器中运行的交互的三维图形,这本书就适合你。
读者反馈我们一直欢迎读者的反馈。读者反馈让我们知道你对这本书的想法—你是否喜欢。读者反馈对我们非常重要,因为它能帮助我们开发读者真正想要的主题。
你可以简单地发一封邮件,在邮件标题中标明本书的标题。
如果你在某个主题方面十分专业并且有兴趣写书,可以在查看我们的作者指南。
客户支持现在你已经拥有一本Packet书了,我们有很多东西可以帮助你,希望你能从这次购买中得到最大的价值。
下载源码你可以访问http://www.packtpub.com并通过你的账号下载所购买的Packt图书的所有示例源码。如果你是在别的地方购买的图书,也可以访问并注册,我们会直接将示例代码通过电子邮件发送给你。
下载本书的彩图我们同样提供了一个PDF文件,其中保存了书中用到的所有截图或图表的彩色图片。这些彩图会帮助你更好地理解输出结果的变化。
然而,直接使用WebGL编程还是很复杂的。编程者需要知道WebGL的底层细节,并且学习复杂的着色语言来获得WebGL的大部分功能。Three.js提供一个很简单的关于WebGL特性的JavaScript API,所以用户不需要详细地学习WebGL,就能创作出好看的三维图形。
Three.js为直接在浏览器中创建三维场景提供了大量的特性和API。阅读这本书,读者将通过许多交互案例和示例代码学习Three.js提供的各种API。
本书内容第1章介绍使用Three.js的基本步骤。阅读完本章就能立刻创建你的第一个Three.js场景,也能直接在浏览器中创建你的第一个三维场景并让它动起来。
第2章解释了使用Three.js时需要了解的基本组件。将介绍灯光、网格、几何形状、材质和摄像机。阅读本章,读者也将对Three.js提供的不同灯光和在场景中使用的摄像机有一个大概的印象。
第3章深入介绍可以在场景中使用的不同灯光。本章通过示例讲解了如何使用聚光灯、平行光、环境光、点光源、半球光和区域光。此外,本章还展示了如何使用镜头光晕来影响光源。
第4章讲述Three.js中可在网格中使用的材质。本章展示了可以设置的所有属性,并且提供了不同的交互示例来阐述Three.js中可用的材质。
第5章讲述Three.js中的几何体。本章将介绍如何在Three.js中创建和配置几何体,并且提供了几何体的交互示例,包括平面、圆形、任意图形、长方体、球体、圆柱体、圆环、环状扭结和多面体。
第6章接着第5章讲解如何使用几何体。本章介绍如何配置和使用Three.js提供的更高级的几何体,如凸面体和Lathe。在本章,你还能学到如何从二维形状拉伸出三维几何体,并且学会通过二元操作来组合几何体,从而创建出一个新的几何体。
第7章介绍从头开始或者通过现有的几何体来创建一个粒子系统。这一章还介绍了如何使用精灵或点云材质来改变单个点的外观。
第8章介绍如何通过外部资源导入网格和几何体,以及如何使用Three.js内置的JSON格式来保存几何体和场景。本章还会解释如何加载不同格式的模型,如OBJ、DAE、STL、CTM、PLY等。
第9章展示可以让场景动起来的各种动画,包括如何组合使用Tween.js库和Three.js,以及如何使用基于形态和框架的动画模型。
第10章延续第4章的内容—使用Three.js材质。在第4章已经初步介绍了材质,本章着重介绍现有的各种材质以及如何把材质应用到网格中。另外,本章还介绍了如何直接使用HTML5中的视频元素和画布元素作为材质的输入。
第11章展示如何使用Three.js对已经渲染过的场景进行后期处理。通过后期处理,你可以将模糊、倾斜移位和着色等效果添加到已经渲染过的场景中。除此之外,本章还介绍了如何创建自己的后期处理效果、自定义的顶点和片段着色器。
第12章解释如何将物理效果添加到Three.js场景中。通过物理效果,你能检测物体之间的碰撞,使物体对重力有响应,以及应用摩擦力。本章展示了如何用Physijs JavaScript库实现这些效果。此外,本章还展示了如何在Three.js场景中添加声音。
本书的使用要求使用本书只需一个能够“玩转”你的例子的文本编辑器(如Sublime)和能够显示这些例子的现代浏览器。有些例子会需要一个本地的网络服务器,你可以在本书第1章中学会如何搭建一个轻量级的网络服务器以使用书中的例子。
面向的读者这本书对于每一个知道JavaScript并且想要在浏览器中创建运行的三维图形的人来说都是很棒的。你不需要知道任何高级的数学知识或WebGL,所需的只是对JavaScript和HTML有大致的了解。书中所需要的材料和示例都可以免费下载,所用的工具都是开源的。所以,如果你想创建可以在任何现代浏览器中运行的交互的三维图形,这本书就适合你。
读者反馈我们一直欢迎读者的反馈。读者反馈让我们知道你对这本书的想法—你是否喜欢。读者反馈对我们非常重要,因为它能帮助我们开发读者真正想要的主题。
你可以简单地发一封邮件,在邮件标题中标明本书的标题。
如果你在某个主题方面十分专业并且有兴趣写书,可以在查看我们的作者指南。
客户支持现在你已经拥有一本Packet书了,我们有很多东西可以帮助你,希望你能从这次购买中得到最大的价值。
下载源码你可以访问http://www.packtpub.com并通过你的账号下载所购买的Packt图书的所有示例源码。如果你是在别的地方购买的图书,也可以访问并注册,我们会直接将示例代码通过电子邮件发送给你。
下载本书的彩图我们同样提供了一个PDF文件,其中保存了书中用到的所有截图或图表的彩色图片。这些彩图会帮助你更好地理解输出结果的变化。